#!/usr/bin/env python
# -*- encoding: utf-8 -*-
# Created on 2018-09-03 16:52:28
# Project: douban

from pyspider.libs.base_handler import *
import re
from pyspider.database.mysql.mysqlbase import MySQLMixin

class Handler(BaseHandler):
    crawl_config = {
    }

    @every(minutes=24 * 60)
    def on_start(self):
        self.crawl('http://www.iqiyi.com/', callback=self.index_page, validate_cert=False )

    @config(age=10 * 24 * 60 * 60)
    def index_page(self, response):
        for each in response.doc('a[href^="http"]').items():
            if re.match(".*iqiyi.*", each.attr.href, re.U):
                self.crawl(each.attr.href, callback=self.detail_page)

    @config(priority=2)
    def detail_page(self, response):
        return {
            "url": response.url,
            "title": response.doc('title').text(),
        }

    def on_result(self, result):
        #print result
        if not result or not result['title']:
            return
        sql = MySQLMixin
        sql.replace('info', **result)